
package net.qiqbframework.common.lock;


public interface LockFactory {
    /**
     * 获取由给定 topicName 的锁.此方法仅仅是获取锁，需要自己判断是否占用锁
     *
     * @param topicName
     * @return
     */
    TopicLock getLock(String topicName);

    /**
     * 获取由给定 topicName 的锁.此方法将阻塞，直到成功获取锁。
     * 注意：当锁定过程中发生异常时，锁可能已经分配，也可能未分配
     *
     * @param topicName 主题名称
     * @return
     */
    TopicLock obtainLock(String topicName);


}
